﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using Telerik.Web.UI;
using SMA.GENTEv1;

public partial class Protegidos_Empresas_Cadastros_ecContratoFrota : PageBase
{
    private const int ItemsPerRequest = 10;
    private bool exclusao = false;

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (!IsPostBack)
            {
                CarregarComboContrato(rcbContrato);
                CarregarComboLocalidade(rcbLocalidade);
                OcultaCampos(true);
                OcultaMsgPagina(true);
            }
        }
        catch (Exception ex)
        {
            ExibirMensagem(true, ex.Message);
        }
    }

    #region Eventos
    protected void btnPesquisar_Click(object sender, EventArgs e)
    {
        try
        {
            Pesquisa();
            rgRegraContrato.DataBind();
            OcultaCampos(false);
            OcultaMsgPagina(true);
        }
        catch (Exception ex)
        {
            ExibirMensagem(true, ex.Message);
        }
    }

    protected void btnLimpar_Click(object sender, EventArgs e)
    {
        try
        {
            OcultaCampos(true);
            OcultaMsgPagina(true);
        }
        catch (Exception ex)
        {
            ExibirMensagem(true, ex.Message);
        }
    }

    protected void rgRegraContrato_ItemCreated(object sender, GridItemEventArgs e)
    {
        try
        {
            if (e.Item is GridDataItem)
            {
                HyperLink editLink = (HyperLink)e.Item.FindControl("EditLink");
                editLink.Attributes["href"] = "#";
                editLink.Attributes["onclick"] = String.Format("return ShowEditForm('{0}','{1}');", e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["IdFrotaRegraContrato"], e.Item.ItemIndex);
            }
            if (!exclusao) OcultaMsgPagina(true);
        }
        catch (Exception ex)
        {
            ExibirMensagem(true, ex.Message);
        }
    }

    protected void rgRegraContrato_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
    {
        try
        {
            if (IsPostBack)
            {
                Pesquisa();
                if (!exclusao) OcultaMsgPagina(true);
            };
        }
        catch (Exception ex)
        {
            ExibirMensagem(true, ex.Message);
        }
    }

    protected void rgRegraContrato_DeleteCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e)
    {
        try
        {
            FrotaRegraContrato regracontrato = new FrotaRegraContrato();

            GridEditableItem editedItem = e.Item as GridEditableItem;

            exclusao = true;
            int idregracontrato = int.Parse(editedItem.OwnerTableView.DataKeyValues[editedItem.ItemIndex]["IdFrotaRegraContrato"].ToString());
            regracontrato.IdFrotaRegraContrato = idregracontrato;
            regracontrato.Excluir();

            OcultaMsgPagina(true);
        }
        catch (Exception ex)
        {
            ExibirMensagem(true, ex.Message);
        }
    }

    protected void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e)
    {
        try
        {
            CarregarComboContrato(rcbContrato);
            CarregarComboLocalidade(rcbLocalidade);
            Pesquisa();
            rgRegraContrato.DataBind();
            OcultaMsgPagina(true);
        }
        catch (Exception ex)
        {
            ExibirMensagem(true, ex.Message);
        }
    }
    #endregion

    #region Metodos
    private void CarregarComboContrato(RadComboBox _combo)
    {
        try
        {
            FrotaRegraContrato regracontrato = new FrotaRegraContrato();
            
            _combo.DataSource = regracontrato.CarregarComboContrato(IdPrestador, IdPatrocinador);
            _combo.DataBind();
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private void CarregarComboLocalidade(RadComboBox _combo)
    {
        try
        {
            FrotaRegraContrato regracontrato = new FrotaRegraContrato();

            _combo.DataSource = regracontrato.CarregarComboLocalidade(IdPrestador, IdPatrocinador);
            _combo.DataBind();
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private void Pesquisa()
    {
        rgRegraContrato.DataSource = CarregaRegraContrato(rcbContrato.SelectedValue, rcbLocalidade.SelectedValue);
    }

    public DataTable CarregaRegraContrato(string _idcontrato, string _idlocalidade)
    {
        FrotaRegraContrato regracontrato = new FrotaRegraContrato();
        DataTable listRegraContrato = new DataTable();

        int idcontrato = (_idcontrato == string.Empty) ? 0 : int.Parse(_idcontrato);
        int idlocalidade = (_idlocalidade == string.Empty) ? 0 : int.Parse(_idlocalidade);

        listRegraContrato = regracontrato.ExibirControleFrota(idcontrato, idlocalidade);

        return listRegraContrato;
    }

    protected void OcultaCampos(bool oculta)
    {
        trResultado.Visible = !oculta;
    }

    private void ExibirMensagem(bool _msgErro, string _textoMsg)
    {
        try
        {
            OcultaMsgPagina(false);
            if (_msgErro)
            {
                lblResultado.ForeColor = System.Drawing.Color.Red;
                lblResultado.Text = _textoMsg;
            }
            else
            {
                lblResultado.ForeColor = System.Drawing.Color.Black;
                lblResultado.Text = _textoMsg;
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private void OcultaMsgPagina(bool oculta)
    {
        trMensagem.Visible = !oculta;
    }
    #endregion
}
